BasicCOMImplementations.h File Reference


Classes

class  TBasicUnknown
class  TBasicDataExchanger
class  TBasicRegisterer

Defines

#define STANDARD_RELEASE
#define STANDARD_RELEASE_BRANCH(X)

Functions

void InitUtilities (IMCUnknown *utilities)
void CleanUpUtilities ()

Variables

int32 gBasicComRefCount

Define Documentation

#define STANDARD_RELEASE
 

Value:

virtual uint32 MCCOMAPI Release() { \
        if (fControllingUnknown)\
        {\
                uint32 releaseResult = fControllingUnknown->Release();\
                if (releaseResult == -1)\
                {\
                        delete this;\
                }\
                return releaseResult;\
        }\
        else \
        {\
                fRefCount--; \
                uint32 res = fRefCount; \
                if (fRefCount == 0) \
                { \
                        delete this; \
                } \
                else if (int32(fRefCount) < 0) \
                { \
                        throw TMCException(-2); \
                } \
                return res; \
        }\
}
Place this macro in your class declaration to get a standard implementation of release that handles aggregation

#define STANDARD_RELEASE_BRANCH (  X   ) 
 

Value:

virtual uint32 MCCOMAPI Release() { \
        if (X::fControllingUnknown)\
        {\
                uint32 releaseResult = X::fControllingUnknown->Release();\
                if (releaseResult == -1)\
                {\
                        delete this;\
                }\
                return releaseResult;\
        }\
        else \
        {\
                X::fRefCount--; \
                uint32 res = X::fRefCount; \
                if (X::fRefCount == 0) \
                { \
                        delete this; \
                } \
                else if (int32(X::fRefCount) < 0) \
                { \
                        throw TMCException(-2, 0); \
                } \
                return res; \
        }\
}


Function Documentation

void CleanUpUtilities (   ) 
 

void InitUtilities (  IMCUnknown *  utilities  ) 
 


Variable Documentation

int32 gBasicComRefCount
 


Generated on Wed Dec 7 14:27:27 2005 for Carrara SDK Doc by  doxygen 1.4.5